#ifndef VRecord_H
#define VRecord_H					 

#include "VField.h"

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

class VRecord
{
	V_COUNTER_OBJECTS(VRecord)
	
public:
	VRecord() {}
	VRecord(const VRecord& record) { copyFrom(record);}
	~VRecord() { clearAll();}
	
	void clearAll();
	void clearValues();

	int fieldCount() const { return m_fields.count();}
	void appendField(VField *field) { m_fields.append(field);}
	VField *field(const QString& name);
	VField *field(int column) { return m_fields[column];}
	
	bool setField(int column,VField *field);

	int indexOf(const QString& name);
	
	//void addName(const QString& name);
	
	void copyFrom(const VRecord& from);
	//void copyNamesFrom(const VRecord& from);
	//void setValuesFrom(const VRecord& from);

	void setValue(const QString& name,const QVariant& value);
	QVariant value(const QString& name);
	
private:
 QList<VField*> m_fields;
};

///////////////////////////////////////////////////////////////////////////////

#endif
